package cn.embeddedKey.method1;

import lombok.Data;

import javax.persistence.*;

/**
 * 联合主键法一：使用 @IdClass + @Id 注解
 *
 * @IdClass 注解指定主键的集合类，该类中的所有属性均为主键
 * 若是 @IdClass(当前类.class)，即当前类的字节码，那么表明当前类中的所有属性均为主键
 * 不管法一还是法二，都需要定义一个主键类，因为对应的持久层接口 UserRepository 中形参2 为ID的类型，需要填 UserEntityPk
 */
@Entity
@Table(name = "k_user")
@IdClass(UserEntityID.class)
@Data
public class UserEntity {

    @Id
    @Column(name = "user_name")
    private String userName;

    @Id
    @Column(name = "user_phone")
    private String userPhone;

    @Column(name = "user_age")
    private Integer userAge;

    @Column(name = "user_address")
    private String userAddress;
}
